package com.qiye.pointsserver.common.PageUtil;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

public class PageUtil {

    /**
     * 通用分页查询
     * @param mapper      Mapper 对象（必须继承 BaseMapper）
     * @param pageParam   分页参数（页码、每页大小、关键词）
     * @param wrapper     查询条件（可带关键词模糊查询）
     * @param <T>         返回实体类型
     * @return PageResult<T>
     */
    public static <T> PageResult<T> pageQuery(
            BaseMapper<T> mapper,
            PageParam pageParam,
            LambdaQueryWrapper<T> wrapper
    ) {
        Page<T> page = new Page<>(pageParam.getPageNum(), pageParam.getPageSize());
        Page<T> result = mapper.selectPage(page, wrapper);
        return new PageResult<>(result);
    }
}

